#!/bin/bash
FILE_COUNT=$#
if((FILE_COUNT!=2)); then
    echo ">>> 错误：传递参数不正确！"
    echo "  用法：runuser.sh \"userName\" \"[cmd|cmd.sh]\""
    exit;
fi
USER=$1
CMD=$2


# 检测系统是否有
function hasSysUser () {
    # 默认返回值
    local _result=0
    for sysUser in `cut -d: -f1 /etc/passwd`; do
        if [ "$sysUser" = "$1" ]; then
            _result=1
            break
        fi
    done
    if [ $_result == 0 ]; then
        echo "当前系统无此用户退出！"
        exit 1
    fi
}
# 检测是否执行文件存在
function hasShellFile () {
    # 默认返回值
    if [ ! -f "$1" ]; then
        echo "执行文件不存在退出！"
        exit 1
    fi
}

# 文件后缀(去掉变量var从左边算起的最后一个'/'字符及其左边的内容)
FILE_EXTENSION="${CMD##*.}"

# 调用检测用户是否存在
hasSysUser $1
echo "=========== 正在以$1用户身份执行 ============"

case "$FILE_EXTENSION" in
    "sh")
        echo "> $2"
        echo "==================== 执行输出 ==================="
        # 调用检测文件是否存在
        hasShellFile $2

 
        su $1 <<EOF
         sh $ashell_path/$2
EOF
    ;;
    *)
        echo "> $2"
        echo "==================== 执行输出 ==================="
        su $1 <<EOF
        $2
EOF

    ;;
esac

#其他切换用户写法：
# runuser - liuwei -c 'cd ~ && pwd'